home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / dviware / dvitops / dvitops.h < prev    next >
C/C++ Source or Header  |  1991-01-25  |  4KB  |  171 lines

  1. /* $Header: /usr/jjc/dvitops/RCS/dvitops.h,v 1.7 90/08/14 13:14:07 jjc Rel $ */
  2.  
  3. #include "util.h"
  4.  
  5. #define MAXCHARS 256
  6.  
  7. #define NO_REGION -1
  8. #define PASS1 1
  9. #define PASS2 2
  10.  
  11. #define ID_BYTE        2
  12. #define SIZE_MAX UINT_MAX
  13. #define uread1(fp) ((unsigned char)(getc((fp))))
  14.  
  15. #define used_char(f, c) (page_used[f][c] = TRUE)
  16.  
  17. typedef long integer;
  18.  
  19. struct depend_list {
  20.     struct postscript_f_list *f;
  21.     struct depend_list *next;
  22. };
  23.  
  24. struct postscript_f_list {
  25.     struct postscript_f_list *next;
  26.     char *file;
  27.     int in_prolog; /* download it in the prolog or it's resident anyway */
  28.     int nuses;
  29.     char s[1];
  30. };
  31.  
  32.  
  33. struct page_info {
  34.     integer address;
  35.     integer count[10];
  36.     integer num;
  37.     integer den;
  38.     integer max_drift;
  39.     int mag;
  40.     double hoffset;
  41.     double voffset;
  42.     int copies;
  43.     char *paper;
  44. };
  45.  
  46. #define WILD LONG_MAX
  47.  
  48. struct option_info {
  49.     int mag;
  50.     int reverse;
  51.     int sort;
  52.     int copies;
  53.     int maxpages;
  54.     char *paper;
  55.     double hoffset;
  56.     double voffset;
  57.     long start_page[10]; /* WILD if it's a * */
  58. };
  59.  
  60. extern char *texfonts;
  61. extern char *texinputs;
  62. extern char *texpk;
  63. extern int dpi;
  64. extern char *page_used[MAXFONTS];
  65. extern long f_memory;
  66. extern int nprolog_fonts;
  67. extern int current_region;
  68. extern int nregions;
  69. extern int landscape;
  70. extern int magnification;
  71. extern int quiet;
  72.  
  73. #ifdef PROTO
  74. integer sread4(FILE *fp);
  75. integer sread3(FILE *fp);
  76. int sread2(FILE *fp);
  77. int sread1(FILE *fp);
  78. integer uread3(FILE *fp);
  79. integer uread2(FILE *fp);
  80. void store_page_usage(void);
  81. void used_font(int f);
  82. integer f_space(int f);
  83. integer f_width(int f, PROMOTED_UNSIGNED_CHAR c);
  84. integer f_rounded_width(int f, PROMOTED_UNSIGNED_CHAR c);
  85. int f_is_blank(int f);
  86. void f_comment(FILE *);
  87. void f_prologue(FILE *);
  88. void f_set(int, FILE *); /* used characters are in page_used */
  89. void f_def(integer fontno, char *name, char *area,
  90. integer checksum, integer at_size, integer design_size, int magnification);
  91. int same_font(int f);
  92. void f_emit(int i, FILE *fp);
  93. void emit_ps_font(char *font, FILE *psfp);
  94. void need_ps_font(char *name, FILE *psfp);
  95. integer scale(integer x, integer z);
  96. void set_string(char *p, int n, int f, integer h, integer v);
  97. void set_rule(integer a, integer b, integer h, integer v);
  98. void eop(struct page_info *p);
  99. void trailer(void);
  100. void prologue(FILE *, int, int, char*);
  101. struct postscript_f_list *add_postscript_font(char *font);
  102. void read_dvi_file(FILE *fp, FILE *ofp, struct option_info *option);
  103. int bigpoint(char *str, char **ptr, double *res);
  104. void p_import_list(FILE *psfp, struct page_info *page);
  105. void special(int pass, char *s, integer h, integer v);
  106. void p_inline_list(FILE *psfp);
  107. void p_tpic_list(FILE *psfp, struct page_info *page);
  108. void p_form_list(FILE *psfp);
  109. void p_special_prologues(FILE *psfp);
  110. int include_file(char *filename, FILE *psfp);
  111. /* returns 1 if it can load it 0 if not */
  112. int load_pk_font(int n, char *name, char *used, integer at_size, 
  113.       integer checksum, integer *width, integer *rounded_width);
  114. /* returns number of bytes of vm used, roughly */
  115. char *find_pk_file(char *name, int mag);
  116. integer emit_pk_font(int n, char *psname, char *used, FILE *fp);
  117. void free_pk_font(int n);
  118. void do_transform(int n, integer *origin_x, integer *origin_y, FILE *psfp);
  119. char *strsave(char *);
  120. /* return number of bytes output */
  121. int put_dim(long, FILE *);
  122. int tpic_special(int, char *, integer, integer);
  123. #else
  124. integer sread4();
  125. integer sread3();
  126. int sread2();
  127. int sread1();
  128. integer uread3();
  129. integer uread2();
  130. void store_page_usage();
  131. void used_font();
  132. integer f_space();
  133. integer f_width();
  134. integer f_rounded_width();
  135. int f_is_blank();
  136. void f_comment();
  137. void f_prologue();
  138. void f_set(); /* used characters are in page_used */
  139. void f_def();
  140. int same_font();
  141. void f_emit();
  142. void emit_ps_font();
  143. void need_ps_font();
  144. integer scale();
  145. void set_string();
  146. void set_rule();
  147. void eop();
  148. void trailer();
  149. void prologue();
  150. struct postscript_f_list *add_postscript_font();
  151. void read_dvi_file();
  152. int bigpoint();
  153. void p_import_list();
  154. void special();
  155. void p_inline_list();
  156. void p_tpic_list();
  157. void p_form_list();
  158. void p_special_prologues();
  159. int include_file();
  160. /* returns 1 if it can load it 0 if not */
  161. int load_pk_font();
  162. char *find_pk_file();
  163. integer emit_pk_font();
  164. void free_pk_font();
  165. void do_transform();
  166. char *strsave();
  167. int put_dim();
  168. int tpic_special();
  169. #endif
  170.  
  171.